package com.mzy.linear_struct.面试150题;

import java.util.Arrays;

/**
 * @Author: mizy3
 * @Date: 2024/08/14/下午9:13
 * @Description:
 */
public class Pro88合并两个有序数组 {

    public void merge(int[] nums1, int m, int[] nums2, int n) {
        // 倒序存入，双指针
        //           i
        // 1 2 3 0 0 0      2 5 6
        //                      j
        int i = m - 1, j = n - 1;
        int len = nums1.length - 1;
        while (i >= 0 && j >= 0) {
            if (nums2[j] > nums1[i]) {
                nums1[len] = nums2[j--];
            } else if (nums1[i] >= nums2[j]) {
                nums1[len] = nums1[i--];
            }
            len--;
        }
        while (i >= 0){
            nums1[len--] = nums1[i--];
        }

        while (j >= 0){
            nums1[len--] = nums2[j--];
        }
    }
}
